# # 赋值运算
# l1 = [1, 2, 3, [22, 33]]
# l2 =l1
# l1.append(666)
# print(l1)
# print(l2)
# # [1, 2, 3, [22, 33], 666]
# # [1, 2, 3, [22, 33], 666]

# 浅copy:
# 会在内存中新开辟一个空间，存放这个copy的列表。
# 但是列表里面的内容还是沿用之前对象的地址，
# 所以l1,l2的id不同，但是内容id相同
# l1 = [1, 2, 3, [22, 33]]
# l2 = l1.copy()
# l1.append(666)
# print(l1)
# print(l2)
# [1, 2, 3, [22, 33], 666]
# [1, 2, 3, [22, 33]]
# print(id(l1))
# print(id(l2))
# # 3121564697160
# # 3121565199112
# l1[-1].append(66)
# print(l1, l2)  # [1, 2, 3, [22, 33, 66]] [1, 2, 3, [22, 33, 66]]
# l2[-1].append(666)
# print(l1, l2)  # [1, 2, 3, [22, 33, 666]] [1, 2, 3, [22, 33, 666]]
# 里边的小列表都变
# l2.append(666)
# print(l1, l2)  # [1, 2, 3, [22, 33]] [1, 2, 3, [22, 33], 666]

# # 深copy:
# # 可变的数据类型copy了一份
# #  不可变的数据类型沿用之前的
# import copy
# l1 = [1, 2, 3, [22, 33]]
# l2 = copy.deepcopy(l1)
# # print(id(l1))
# # print(id(l2))
# # 1849450381896
# # 1849450883848
# l1[-1].append(666)
# print(l1, l2)  # [1, 2, 3, [22, 33, 666]] [1, 2, 3, [22, 33]]

# 相关面试题（全切属于浅copy）
l1 = [1, 2, 3, [22, 33]]
l2 = l1[:]
l1[-1].append(666)
print(l1)  # [1, 2, 3, [22, 33, 666]]
print(l2)  # [1, 2, 3, [22, 33, 666]]
# 浅copy：list dict: 嵌套的可变的数据类型是同一个。
# 深copy：list dict: 嵌套的可变的数据类型不是同一个。
